//定义变量，引入gulp及各个插件
const gulp = require('gulp'),
    del = require('del'),// 引入删除任务
    htmlmin = require('gulp-htmlmin'), // 处理html文件
    concat = require("gulp-concat"),//合并文件
    babel = require('gulp-babel'),
    minifyCss = require('gulp-minify-css'), // 压缩css文件,
    uglify = require("gulp-uglify"),//压缩js
    connect = require("gulp-connect"),
    htmlreplace = require('gulp-html-replace');

/**
 * 清空dist文件目录下所有文件
 * 图片目录不清理，图片一般不需要重复生产
 */
gulp.task('del', () => del([
    'dist/**/*',
    '!dist/images',
    '!dist/images/**/*',
    '!dist/img',
    '!dist/img/**/*',
    '!dist/common/img',
    '!dist/common/img/**/*'
]));

//处理html文件
gulp.task('htmlMin1', () => gulp.src('index.html')
    .pipe(htmlreplace({
        'css': 'css/common.min.css',
        'js': 'js/bundle.min.js'
    }))
    .pipe(htmlmin({
        removeComments: true, //清除HTML注释
        collapseWhitespace: true, //压缩HTML
        // collapseBooleanAttributes: true, //省略布尔属性的值 <input checked="true"/> ==> <input />
        // removeEmptyAttributes: true, //删除所有空格作属性值 <input id="" /> ==> <input />
        removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
        removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
        minifyJS: true, //压缩页面JS
        minifyCSS: true, //压缩页面CSS
    }))
    .pipe(gulp.dest('dist'))
);

//处理pages下面得页面
gulp.task('htmlMin2', () => gulp.src('pages/*.html')
    .pipe(htmlreplace({
        'css': '../css/common.min.css',
        'js': '../js/bundle.min.js'
    }))
    .pipe(htmlmin({
        removeComments: true, //清除HTML注释
        collapseWhitespace: true, //压缩HTML
        // collapseBooleanAttributes: true, //省略布尔属性的值 <input checked="true"/> ==> <input />
        // removeEmptyAttributes: true, //删除所有空格作属性值 <input id="" /> ==> <input />
        removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
        removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
        minifyJS: true, //压缩页面JS
        minifyCSS: true, //压缩页面CSS
    }))
    .pipe(gulp.dest('dist/pages'))
);

//复制指定文件（用数组）
gulp.task("copyFile1", function () {
    return gulp.src(["common/bootstrap4/*/*"]).pipe(gulp.dest("dist/common/bootstrap4"));
});

//复制指定文件（用数组）
gulp.task("copyFile2", function () {
    return gulp.src(["common/jquery/*"]).pipe(gulp.dest("dist/common/jquery"));
});

//复制所有图片
gulp.task("copyImages", function () {
    return gulp.src(["images/*"]).pipe(gulp.dest("dist/images"));
});

//复制所有fonts
gulp.task("copyFonts", function () {
    return gulp.src(["fonts/*"]).pipe(gulp.dest("dist/fonts"));
});

// 合并css代码
gulp.task("concatCSSAndMis", function () {
    return gulp.src("css/*.css").pipe(concat("common.min.css")).pipe(minifyCss()).pipe(gulp.dest("dist/css"));
});

//合并js并压缩
gulp.task("dealJS", function () {
    return gulp.src("js/*.js").pipe(concat("bundle.min.js")).pipe(gulp.dest("dist/js"));
});
